/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package entidad;

import control.SIRHApp;
import control.comparaciones.ComparacionIniciaCon;
import control.filtros.Filtro;
import control.filtros.FiltroCandidatosNombre;
import control.filtros.FiltroDepartamentoNombre;
import control.filtros.FiltroUsuarioNombre;
import frontera.interfaz.Tupla;
import java.util.ArrayList;
import java.util.Calendar;


/**
 *
 * @author tuareg
 */
public class Sistema {

     	public Sistema() {

	}

	public ArrayList<Candidato> getCandidatos() {
		Tupla<Filtro<Candidato>, String> tmp = new Tupla<Filtro<Candidato>, String>(new FiltroCandidatosNombre(), "");
		ArrayList<Tupla<Filtro<Candidato>, String>> info = new ArrayList<Tupla<Filtro<Candidato>, String>>();
		info.add(tmp);
		return SIRHApp.getInstance().getDAOCandidato().buscar(info, new ComparacionIniciaCon());
	}
        
	public ArrayList<Usuario> getUsuarios() {
		Tupla<Filtro<Usuario>, String> tmp = new Tupla<Filtro<Usuario>, String>(new FiltroUsuarioNombre(), "");
		ArrayList<Tupla<Filtro<Usuario>, String>> info = new ArrayList<Tupla<Filtro<Usuario>, String>>();
		info.add(tmp);
		return SIRHApp.getInstance().getDAOUsuario().buscar(info, new ComparacionIniciaCon());
	}

	public ArrayList<Departamento> getDepartamentos() {
		Tupla<Filtro<Departamento>, String> tmp = new Tupla<Filtro<Departamento>, String>(new FiltroDepartamentoNombre(), "");
		ArrayList<Tupla<Filtro<Departamento>, String>> info = new ArrayList<Tupla<Filtro<Departamento>, String>>();
		info.add(tmp);
		return SIRHApp.getInstance().getDAODepartamento().buscar(info, new ComparacionIniciaCon());
	}
        
	public ArrayList<Cargo> getCargos() {
		return SIRHApp.getInstance().getAdmCambios().getCargosFecha(Calendar.getInstance());
	}


	public ArrayList<Empleado> getEmpleados() {
		return SIRHApp.getInstance().getAdmCambios().getEmpleadosFecha(Calendar.getInstance());
	}

	public ArrayList<Prestacion> getPrestaciones() {
		return SIRHApp.getInstance().getAdmCambios().getPrestacionFecha(Calendar.getInstance());
	}

	public boolean agregarCandidato(Candidato candidato) {
		return SIRHApp.getInstance().getDAOCandidato().crear(candidato);
	}

	public boolean agregarCargo(Cargo cargo) {
		return SIRHApp.getInstance().getDAOCargo().crear(cargo);
	}

	public boolean agregarEmpleado(Empleado empleado) {
		return SIRHApp.getInstance().getDAOEmpleado().crear(empleado);
	}

	public boolean agregarUsuario(Usuario usuario) {
		return SIRHApp.getInstance().getDAOUsuario().crear(usuario);
	}

	public boolean agregarPrestacion(Prestacion prestacion) {
		return SIRHApp.getInstance().getDAOPrestacion().crear(prestacion);
	}
	
	public boolean agregarDepartamento(Departamento departamento) {
		return SIRHApp.getInstance().getDAODepartamento().crear(departamento);
	}

	public boolean eliminarCandidato(Candidato candidato) {
		return SIRHApp.getInstance().getDAOCandidato().eliminar(candidato);
	}

	public boolean eliminarCargo(Cargo cargo) {
		return SIRHApp.getInstance().getDAOCargo().eliminar(cargo);
	}

	public boolean eliminarUsuario(Usuario usuario) {
		return SIRHApp.getInstance().getDAOUsuario().eliminar(usuario);
	}

	public boolean eliminarPrestacion(Prestacion prestacion) {
		return SIRHApp.getInstance().getDAOPrestacion().eliminar(prestacion);
	}

}
